// cloudfunctions/video-task-monitor/index.js
// 定时触发器云函数：长期监控运行中的视频任务
// 建议配置：每30秒触发一次
// 职责：异步调用 video-task 的 monitor action

const cloud = require('wx-server-sdk');

cloud.init({
  env: 'cloud1-6g22e569b6b129d5'
});

/**
 * 定时触发器入口
 * 异步触发 video-task 的 monitor 操作，并记录日志
 */
exports.main = async (event, context) => {
  const requestId = context && context.requestId ? context.requestId : 'unknown';
  console.log(`⏰ [${requestId}] 定时触发器执行 - 异步调用 video-task monitor`);

  try {
    // 异步调用，不等待结果
    cloud
      .callFunction({
        name: 'video-task',
        data: { action: 'monitor' }
      })
      .then(res => {
        console.log(`✅ [${requestId}] monitor 异步调用成功`);
        console.log(`🔍 返回结果:`, JSON.stringify(res.result));
      })
      .catch(err => {
        // 异步捕获错误时记录详细信息
        console.error(`❌ [${requestId}] monitor 异步调用失败`);
        console.error(`📄 错误详情:`, JSON.stringify(err, null, 2));
      });

    // 主函数立即返回，不等待 monitor 结果
    return {
      success: true,
      message: '已异步触发 video-task 的 monitor 操作',
      requestId
    };

  } catch (e) {
    // 主体执行异常时的兜底
    console.error(`💥 [${requestId}] 定时触发器执行异常`);
    console.error(`📄 异常详情:`, JSON.stringify(e, null, 2));

    return {
      success: false,
      message: '定时触发器执行异常',
      error: e.message,
      requestId
    };
  }
};
